﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class URL分頁 : System.Web.UI.Page
{
    private string connstr;
    private string sql;

    protected void Page_Load(object sender, EventArgs e)
    {
        /*if (!IsPostBack)
        {
            GridBind();
        }*/
      FenyeCode();
    }
    private void GridBind()
    {
        connstr = ConfigurationSettings.AppSettings["SqlConn"];
        
        sql = "select * from book order by id desc";//SQL語句
        SqlConnection MyConn = new SqlConnection(connstr);
        SqlDataAdapter objDataAdapter = new SqlDataAdapter(sql, MyConn);//这个是什么东东呀..我不知道
        DataSet objDataSet = new DataSet();
        objDataAdapter.Fill(objDataSet);
        grid1.DataSource = objDataSet;
        grid1.DataBind();
    }

    private void FenyeCode()
    { 
        
      //分页函数  为了方便的使用 变量用了中文
      /////////////// 函数从URL得到/////////.
      ////////////// 变量页码.     /////////
      /////////////使用PagedDataSource类////
     
        int 总页数, 总记录, 每页显示数, 余数,页码;
        string 输出;

    //以下开始数联接.

        connstr = ConfigurationManager.AppSettings["SqlConn"];
        sql = "select * from book";//SQL語句
        SqlConnection MyConn = new SqlConnection(connstr);
        SqlDataAdapter objDataAdapter = new SqlDataAdapter(sql, MyConn);//这个是什么东东呀..我不知道
        DataSet objDataSet = new DataSet();
        objDataAdapter.SelectCommand.CommandType = CommandType.Text;//选择命令的类型
        objDataAdapter.Fill(objDataSet);//对DataSet对像进行 填充

        //以下开始分页变量的定义;
        总记录 = objDataSet.Tables[0].Rows.Count;
        每页显示数 = 2;
        总页数 = 总记录 / 每页显示数;
        余数 = 总记录 % 每页显示数;
        if (余数!=0)
        {
            总页数++;
        }

        PagedDataSource 分页主变量 = new PagedDataSource();
        分页主变量.DataSource = objDataSet.Tables[0].DefaultView;//邦定DataSet的数据
        分页主变量.AllowPaging = true;//定义可以分页
        分页主变量.PageSize = 每页显示数;

        //开始从URL里接收页码
        try
        {
            页码 = int.Parse(Request.QueryString["pgae"]);//int.Parse应该是转换类型吧.
            if (页码 <= 0)
            {
                页码 = 1;
            }

            if (页码 >= 总页数)
            {
                页码=总页数;
            }
        }
        catch 
        {
            页码 = 1;
        }
 
        分页主变量.CurrentPageIndex = 页码-1 ;




        grid1.DataSource = 分页主变量;//从新邦定

        grid1.DataBind();

        //以下代码开始控制 前台HTML代码的输出

        //定义HTML 输出页面变量 "输出"

        输出 = "<a href='?pgae=0'>" + "首頁" + "</a> "
                + "<a href='?pgae=" + (页码 - 1).ToString() + "'>" + "上一頁" + "</a> "
                + "<a href='?pgae=" + (页码 + 1) + "'>" + "下一頁" + "</a> "
                + "<a href='?pgae=" + 总页数 + "'>" + "尾頁" + "</a> ";

        if (每页显示数 >= 总记录)
        {

            Div.InnerHtml = "首頁 上一頁 下一頁 尾頁";

        }

        else
        {
            Div.InnerHtml = 输出 + "总页数:" + 总页数 + " / 页码: " + 页码;
            Response.Write("<br>" + Request.QueryString["pgae"]);

        }
    }
}
